#ifndef __BSP_DEBUG_H__
#define __BSP_DEBUG_H__

#ifdef __cplusplus
extern "C" {
#endif

#include "stdio.h"
#include "at32f435_437.h"


/* debug定义 */
#define DEBUG_USARTx		USART3
#define DEBUG_USART_CLK		CRM_USART3_PERIPH_CLOCK

#define DEBUG_TX_GPIO_PIN				GPIO_PINS_10
#define DEBUG_TX_GPIO_PORT				GPIOC
#define	DEBUG_TX_GPIO_CLK				CRM_GPIOC_PERIPH_CLOCK
#define DEBUG_TX_GPIO_PINS_SOURCE		GPIO_PINS_SOURCE10
#define DEBUG_TX_GPIO_MUX				GPIO_MUX_7
			 
#define DEBUG_RX_GPIO_PIN				GPIO_PINS_11
#define DEBUG_RX_GPIO_PORT				GPIOC
#define	DEBUG_RX_GPIO_CLK				CRM_GPIOC_PERIPH_CLOCK
#define DEBUG_RX_GPIO_PINS_SOURCE		GPIO_PINS_SOURCE11
#define DEBUG_RX_GPIO_MUX				GPIO_MUX_7
			 
#define DEBUG_DE_GPIO_PIN				GPIO_PINS_2
#define DEBUG_DE_GPIO_PORT				GPIOD
#define	DEBUG_DE_GPIO_CLK				CRM_GPIOD_PERIPH_CLOCK
#define DEBUG_DE_GPIO_PINS_SOURCE		GPIO_PINS_SOURCE2
#define DEBUG_DE_GPIO_MUX				GPIO_MUX_7
			 
#define DEBUG_USART_IRQn				USART3_IRQn
#define DEBUG_USART_IRQHandler			USART3_IRQHandler



#define DEBUG_ENABLE		1 // 打印开关
#define LOG_INFO			1
#define LOG_ERR				1
#define LOG_DEBUG			1


void bsp_debug_config(void);


/* debug配置 */
#if DEBUG_ENABLE

	#ifdef LOG_INFO
		#define log_info(format,...) 		printf("[info]:" format"\r\n", ##__VA_ARGS__)
	#else
		#define log_info(format,...) 
	#endif

	#ifdef LOG_DEBUG
		#define log_debug(format,...) 		printf("[debug]:" format"\r\n", ##__VA_ARGS__)
	#else
		#define log_debug(format,...) 		
	#endif

	#ifdef LOG_ERR
		#define log_err(format,...) 		printf("[err]:" format"\r\n", ##__VA_ARGS__)
	#else
		#define log_err(format,...) 		
	#endif
#endif


#ifdef __cplusplus
}
#endif

#endif /* __BSP_DEBUG_H__ */


